from flask import Flask, render_template, redirect, url_for
from flask_script import Manager


from setting import DevelopmentConfig
from exit import db

# 用指令迁移数据库，需要导入两个类
from flask_migrate import Migrate, MigrateCommand

# 导入蓝图对象
from blog.views import blog_bp
from user.views import user_bp

# 导入模型类，否则迁移的时候容易找不到
from blog.models import Article
from user.models import User
app = Flask(__name__)

#配置为开发环境
app.config.from_object(DevelopmentConfig)

#给用户绑定SQLAlchemy数据库
db.init_app(app)

#加载配置文件，配置数据库
app.config.from_pyfile('setting.py')

manager = Manager(app)

#创建数据库迁移对象，绑定应用和要操作的数据库
migrate = Migrate(app,db)

#通过Manager对象为操作数据库添加 在命令行中使用的指令---用哪个字段来表示数据库
manager.add_command('database', MigrateCommand)

# 注册蓝图
app.register_blueprint(user_bp)
app.register_blueprint(blog_bp)

@app.route('/')
def root():
    return redirect(url_for('blog.index'))


if __name__ == '__main__':
    manager.run()
